super._onDestroy();
}
});
-
-/* SystemIndicator:
- *
- * This class manages one system indicator, which are the icons
- * that you see at the top right. A system indicator is composed
- * of an icon and a menu section, which will be composed into the
- * aggregate menu.
- */
-export const SystemIndicator = GObject.registerClass(
-class SystemIndicator extends St.BoxLayout {
- _init() {
- super._init({
- style_class: 'panel-status-indicators-box',
- reactive: true,
- visible: false,
- });
- this.menu = new PopupMenu.PopupMenuSection();
- }
-
- get indicators() {
- let klass = this.constructor.name;
- let {stack} = new Error();
- log(`Usage of indicator.indicators is deprecated for ${klass}\n${stack}`);
- return this;
- }
-
- _syncIndicatorsVisible() {
- this.visible = this.get_children().some(a => a.visible);
- }
-
- _addIndicator() {
- let icon = new St.Icon({style_class: 'system-status-icon'});
- this.add_child(icon);
- icon.connect('notify::visible', this._syncIndicatorsVisible.bind(this));
- this._syncIndicatorsVisible();
- return icon;
- }
-});